// src/utils/request.ts
import axios from 'axios'
import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'

// 创建 axios 实例
const service: AxiosInstance = axios.create({
    baseURL: 'http://127.0.0.1:1102', // 基础路径，配合 vite.config.ts 中的 proxy 使用
    // timeout: 5000, // 超时时间
})

// 请求拦截器
service.interceptors.request.use(
    (config: AxiosRequestConfig): any => {
        config.withCredentials = true;
        const token = localStorage.getItem('token');
        if (token && config.headers) {
            config.headers['Token'] = `${token}`;
        }
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
)

// 响应拦截器
service.interceptors.response.use(
    (response: AxiosResponse) => {
        console.log('响应数据:', response)
        // 可根据实际后端返回结构做统一处理
        if (response.status !== 200) {
            return Promise.reject(response.data.message || '请求失败');
        }
        return response.data
    },
    (error) => {
        // 错误统一处理
        console.error('请求失败:', error)
        return Promise.reject(error)
    }
)

export default service
